#!/bin/bash

#功能: tr字符转换(从标准输入读取数据并输出到标准输出)

#1. 字符集转换
echo "12345678" | tr '1-9' 'a-i' #将12345678中1-9字符集转为a-i

#2. 删除特定字符
echo "efg1234abc" | tr -d '0-9' #删除0-9字符
echo "efg1234abc" | tr -d -c '0-9\n' #-c '0-9\n'表示除这些字符以外的字符集, 这些字符集需要被删除(因此这里删除除数字以外所有字符)

#3. 压缩重复字符
echo "abcdd   lk op" | tr -s " " #压缩多余空格为单个
echo "abcdd   lk op" | tr -s " d" #压缩多余空格和d为单个

#4. 高级用法 计算文件中数据的和
#输入1.txt
#123
#245
#567
#
cat 1.txt | echo $[ $( tr '\n' '+' ) 0 ] #如果存在空行可以加-s参数
cat 1.txt | tr -s "\n" | echo $[ $( tr '\n' '+' ) 0 ]

#5. 特殊字符
echo "abcDEf\n" | tr "[:lower:]" "[:upper:]" #小写字母转大写
echo "afjd,.?af!" | tr -d "[:punct:]" #删除标点符号
echo "20ubef" | tr -d "[:xdigit:]"    #删除十六进制中字符